// 引入API（虽然我们使用假数据，但保留API引用以便将来使用）
const {getGoodsDetail} = require('../../../api/goods');

Page({
  data: {
    // 商品ID
    id: null,
    
    // 商品详情数据
    goods: null,
    
    // 购物车数量
    cartCount: 0,
    
    // 是否已收藏
    isCollected: false,
    
    // 加载状态
    loading: true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const id = options.id;
    this.setData({
      id,
      loading: true
    });
    
    // 获取商品详情
    this.fetchProductDetail(id);
    
    // 检查是否已收藏
    this.checkCollectionStatus(id);
    
    // 获取购物车数量
    this.getCartCount();
  },

  /**
   * 获取商品详情（使用假数据）
   */
  fetchProductDetail: function (id) {
    getGoodsDetail(id).then(res => {
      if(res.code == 20000){
        const product = {
          id: res.data.id,
          name: `商品${id} - ` + res.data.name,
          price: res.data.price,
          originalPrice: res.data.originalPrice,
          sales: res.data.sales,
          stock: res.data.stock,
          imageUrl: res.data.imageUrl,
          // ↑这边的imageUrl是否是个数组？
          description: res.data.description,
          tags: res.data.tags // ['热销', '新品', '限时特价']
        };
        this.setData({
          product,
          loading: false,
          // 模拟购物车数量  可以改
          cartCount: Math.floor(Math.random() * 10)
        });
      } else {
        wx.showToast({
          title: res.msg || '商品详情加载失败',
          icon: 'none'
        });
      }
      

    }).catch(res => {
      this.setData({ loading: false });
      wx.showToast({ title: res.msg || '商品详情加载失败', icon: 'none' });
    });
    

    this.setData({
      product,
      loading: false,
      // 模拟购物车数量
      cartCount: Math.floor(Math.random() * 10)
    });
    
  },

  /**
   * 加入购物车事件
   */
  onAddToCart: function () {
    wx.showToast({
      title: '已加入购物车',
      icon: 'success'
    });
    
    // 更新购物车数量
    this.setData({
      cartCount: this.data.cartCount + 1
    });
  },

  /**
   * 立即购买事件
   */
  onBuyNow: function () {
    wx.showToast({
      title: '功能开发中',
      icon: 'none'
    });
  },

  /**
   * 客服点击事件
   */
  onClickService: function () {
    wx.showToast({
      title: '客服功能开发中',
      icon: 'none'
    });
  },

  /**
   * 购物车点击事件
   */
  onClickCart: function () {
    // 跳转到购物车页面
    wx.switchTab({
      url: '/pages/cart/index'
    });
  },

  /**
   * 检查商品是否已收藏
   */
  checkCollectionStatus: function (id) {
    // 从本地存储获取收藏列表
    const collectionList = wx.getStorageSync('collectionList') || [];
    
    // 检查商品是否已收藏
    const isCollected = collectionList.some(item => item.id === id);
    
    this.setData({
      isCollected
    });
  },

  /**
   * 收藏/取消收藏商品
   */
  onToggleCollect: function () {
    const { product, isCollected } = this.data;
    
    if (!product) return;
    
    // 从本地存储获取收藏列表
    let collectionList = wx.getStorageSync('collectionList') || [];
    
    if (isCollected) {
      // 取消收藏
      collectionList = collectionList.filter(item => item.id !== product.id);
      
      wx.showToast({
        title: '已取消收藏',
        icon: 'success'
      });
    } else {
      // 添加收藏
      collectionList.push({
        id: product.id,
        name: product.name,
        price: product.price,
        imageUrl: product.imageUrl || '/images/goods.jpg',
        addTime: new Date().getTime()
      });
      
      wx.showToast({
        title: '收藏成功',
        icon: 'success'
      });
    }
    
    // 保存到本地存储
    wx.setStorageSync('collectionList', collectionList);
    
    // 更新收藏状态
    this.setData({
      isCollected: !isCollected
    });
  },

  /**
   * 获取购物车数量
   */
  getCartCount: function () {
    // 从本地存储获取购物车数据
    const cartList = wx.getStorageSync('cartList') || [];
    
    // 计算购物车中商品的总数量
    const count = cartList.reduce((total, item) => total + item.num, 0);
    
    this.setData({
      cartCount: count
    });
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    const { product } = this.data;
    return {
      title: product ? product.name : '商品详情',
      path: `/pages/product/detail/index?id=${this.data.id}`
    };
  }
});